package com.dstz.form.manager;

import javax.servlet.http.HttpServletResponse;

import org.springframework.web.bind.annotation.RequestParam;

import com.dstz.base.api.response.impl.ResultMsg;
import com.dstz.form.model.custsql.FormCustSql;
import com.dstz.form.request.SqlViewRequest;
import com.dstz.form.vo.SqlViewDataVO;
import com.dstz.form.vo.SqlViewVO;

/**
 * @description:自定义列表View
 * @company:宇宙大魔王
 * @author:xianggang
 * @date:2019-08-31 12:21:58
 */
public interface FormCustSqlViewManager {
	
	/**
	 * 根据别名获取自定义sql对象
	 * @param code
	 * @return
	 * @return ResultMsg<FormCustSql>
	 * @author xianggang
	 * @date 2019年9月2日 下午2:03:56
	 */
	ResultMsg<FormCustSql> getVo(@RequestParam String code);
	
	/**
	 * 查询自定义sql的执行语句对象
	 * @param request
	 * @return
	 * @return ResultMsg<FormCustSql>
	 * @author xianggang
	 * @date 2019年9月2日 下午2:16:20
	 */
	ResultMsg<SqlViewVO> listDataSql(SqlViewRequest request);
	
	/**
	 * 查询自定义sql数据
	 * @param request
	 * @return
	 * @return ResultMsg<FormCustSql>
	 * @author xianggang
	 * @date 2019年9月2日 下午2:16:20
	 */
	ResultMsg<SqlViewDataVO> listData(SqlViewRequest request);
	
	/**
	 * 导出自定义sql数据
	 * @param request
	 * @return
	 * @return ResultMsg<SqlViewDataVO>
	 * @author xianggang
	 * @date 2019年9月4日 上午9:51:20
	 */
	ResultMsg<String> exportData(SqlViewRequest request, HttpServletResponse response);
	
	/**
	 * 自定义列表-事件按钮方法
	 * @param code
	 * @param buttonAlias
	 * @return
	 * @return ResultMsg<String>
	 * @author xianggang
	 * @date 2019年9月4日 上午9:57:27
	 */
	ResultMsg<String> changeData(String code, String buttonAlias, String ids);
	
}
